package main

import (
	"flag"
	"fmt"
	"log"
	"os"
	"path/filepath"

	"toolx/updatex"
)

var DefaultConfig updatex.Config

func init() {
	pwd, _ := os.Getwd()
	DefaultConfig = updatex.DefaultConfig
	flag.StringVar(&DefaultConfig.RootDir, "d", pwd, "根目录(默认当前目录)")
	flag.IntVar(&DefaultConfig.FileCount, "f", 10, "同时处理多少文件")
	flag.IntVar(&DefaultConfig.GetCount, "p", 10, "同时运行多少go getOne")
	flag.BoolVar(&DefaultConfig.ModTidy, "m", true, "是否执行go mod tidy")
	flag.BoolVar(&DefaultConfig.UAll, "u", false, "getOne -u all")
	flag.Parse()
	if !filepath.IsAbs(DefaultConfig.RootDir) {
		DefaultConfig.RootDir = filepath.Join(pwd, DefaultConfig.RootDir)
		fmt.Println("Root Dir", DefaultConfig.RootDir)
	}
	fmt.Printf("%#v\n", DefaultConfig)
}
func main() {
	if !updatex.IsNext() {
		fmt.Println("End !!", DefaultConfig.RootDir)
		return
	}
	update := updatex.GoUpdate{DefaultConfig}
	mod := update.WalkFindGoMod()
	log.Println(mod)
	//update.Run(mod, update.parseFileExec)
	update.Run(mod, update.ParseFileExec)
}
